package com.xuwang.controller;

import com.xuwang.pojo.Complaints;
import com.xuwang.service.impl.ComplaintsServiceImpl;
import com.xuwang.vo.ComplaintsAcceptInsertVo;
import com.xuwang.vo.ComplaintsVo;
import io.swagger.annotations.*;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 投诉举报表控制层
 * @ClassName ComplaintsController
 * @Description TODO
 * @Author OuJunchen
 * @Date 2021/9/16 下午2:36
 * @Version 1.0
 */
@RestController
@RequestMapping("/complaintsController")
@Api(value = "(Complaints)投诉举报表管理", tags = "(Complaints)投诉举报表管理接口API")
@ApiResponses({
        @ApiResponse(code = 400, message = "请求参数不完整或者错误"),
        @ApiResponse(code = 302, message = "临时重定向，被拦截器栏了"),
        @ApiResponse(code = 304, message = "缓存数据"),
        @ApiResponse(code = 404, message = "找不到页面"),
        @ApiResponse(code = 405, message = "请求方式不正确，比如后台接收是post，但前端请求的是get"),
        @ApiResponse(code = 406, message = "页面地址和接口名冲突"),
        @ApiResponse(code = 415, message = "请求格式不正确，前端可能没有把请求头修改为json，也可能前端请求的json对象没有转换为字符串"),
        @ApiResponse(code = 500, message = "后台服务逻辑错误")
})
public class ComplaintsController {

    @Resource
    //服务对象
    private ComplaintsServiceImpl complaintsService;

    /**
     * 通过一个pojo对象新增单条数据
     *
     * @param complaintsVo insert VO 对象
     * @Author OuJunchen
     * @return 返回map
     */
    @RequestMapping(value = "/insert", produces = "application/json;charset=UTF-8")
    @ResponseBody
    @ApiOperation(value = "插入更新举报投诉受理", notes = "插入更新举报投诉受理", httpMethod = "POST", response = String.class)
    public Map<String, Object> insert(@RequestBody @ApiParam(name = "complaintsVo",value = "pojo模型",required = true) ComplaintsVo complaintsVo) {
        Complaints complaints = new Complaints();
        BeanUtils.copyProperties(complaintsVo, complaints);
        return this.complaintsService.insertSelective(complaints);
    }
}
